package com.boot.ys.mybatisplus.script;

import java.io.File;
import java.io.IOException;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.HashMap;
import java.util.Map;
import java.nio.file.Files;

/**
 * 描述 合并多个文件夹路径 为一个
 *
 * @Author yangsheng
 * @Date 2024/8/16 16:20
 */
public class CopyPicTure {

    public static void main(String[] args) {

        String sourceDir = "C:\\Users\\DELL\\Desktop\\数据\\1";
        String targetDir = "C:\\Users\\DELL\\Desktop\\数据\\2";

        try {
            File sourceFolder = new File(sourceDir);
            File[] subFolders = sourceFolder.listFiles(File::isDirectory);

            if (subFolders != null) {
                Map<String, File> prefixToFolderMap = new HashMap<>();

                // 遍历所有子文件夹
                for (File folder : subFolders) {
                    String folderName = folder.getName();
                    String prefix = folderName.substring(0, 7); // 获取前缀部分

                    // 创建以前缀命名的目标文件夹
                    File targetFolder = new File(targetDir, prefix + folderName.substring(7));
                    if (!targetFolder.exists()) {
                        targetFolder.mkdirs();
                    }

                    // 将每个子文件夹中的图片复制到目标文件夹
                    File[] images = folder.listFiles((dir, name) -> name.toLowerCase().endsWith(".jpg") || name.toLowerCase().endsWith(".png"));
                    if (images != null) {
                        for (File image : images) {
                            Files.copy(image.toPath(), Paths.get(targetFolder.getPath(), image.getName()), StandardCopyOption.REPLACE_EXISTING);
                        }
                    }
                }
                System.out.println("图片复制完成！");
            } else {
                System.out.println("源目录不存在或没有子文件夹！");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }




    }

}

